#!/bin/basḧ́
# osiotaulu selväkielisenä. kaikki muutokset tehdään vain tähän tauluun.             petteriIII 16.7.2011
#        012345678901234567890123456789012345678            taulukon muotoa ei saa rikkoa
#         osiotyyppi -numero -koko    -nimi   kansio      # osion tyypin mahdolliset arvot: primary, extended, logical
Osio[0]='     p        1     +3G      sda1    /root'      # primary-osioita saa olla kolme tai neljä jos loogisia osioita ei ole.
Osio[1]='     e        2     +265G    sda2    extended'   # loogiset osiot perustetaan extended-alueelle.
Osio[2]='     l              +1G      sda5    /boot'      # loogisten osioiden numerointi alkaa automaattisesti 5:stä eikä niitä määrätä
Osio[3]='     l              +240G    sda6    /home'      # levyjä voi olla useampiakin, ei kuitekaan RAID tms.
Osio[4]='     l              +1G      sda7    /tmp'       # tiedostomuoto on ext4. Se määritellään rivillä 21
Osio[5]='     l              +8G      sda8    /usr'       # muodostettavat osiot nimetään kansion mukaan, ilman etu-liitettä: / 
Osio[6]='     l              +4G      sda9    /var'       # alustettava kovalevy voi olla tyhjä mutta täysikin kelpaa.
Osio[7]='     l              +1G      sda10   /svr'       # alkuperäiset asetukset ovat 280GB:lle mutta asetuksia muuttamalla mille koolle vain.
Osio[8]='     l              +1G      sda11   /opt'       # osioita voi muuttaa, lisätä tai poistaa
Osio[9]='     l              +1G      sda12   /usr/local' # sopii yhtähyvin sata:lle, ide:lle tai USB:lle, varmaan muillekin.      
Osio[10]='     l              +2G      sda13   swap'      # swappia tulee olla vähintään samanverran kuin RAM:mia. Liioitella ei kannata.

[[ $(env | grep USERNAME=ubuntu) ]] || { echo 'tämän skriptin voi ajaa vain kun on bootannut USB-tikulla tai live-CD:llä'; sleep 4; exit 
}

read -p 'Onko kaikki muut kovalevyt irroitettu paitsi alustettava kovalevy?' apu
[[ ! ${apu:0:1} = [kKyY] ]] && exit

sudo swapoff -a # jos kovalevyllä on swap niin USB-tikun Ubuntu on ottanut sen käyttöön ja periaatteessa se pitää irroittaa ennen osiotaulun tyhjentämistä.
sudo dd if=/dev/zero of=/dev/sda bs=512 count=1 # tyhjennetään kovalevyn osiotaulu

# tehdään osiot osiotaulun perusteella
for (( apu=0; apu<${#Osio[@]}; apu++ )); do   
  echo -e 'n\n'${Osio[$apu]:5:1}>asetustiedosto;[[ ${Osio[$apu]:14:1} > ' ' ]] && echo -e ${Osio[$apu]:14:1}>>asetustiedosto;echo -e -'\n'${Osio[$apu]:20:7}'\nw'>>asetustiedosto
  sudo fdisk /dev/sda <asetustiedosto
done

# alustetaan osiot
for (( apu=0; apu<${#Osio[@]}; apu++ )); do
  [[ ${Osio[$apu]:37:1} = '/' ]] && sudo mke2fs -t ext4 -L ${Osio[$apu]:38} /dev/${Osio[$apu]:29:7}
  [[ ${Osio[$apu]:37:4} = 'swap' ]] &&  sudo mkswap /dev/${Osio[$apu]:29:5}
done
 


 
